package br.com.usapre.faces;

import java.io.Serializable;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.login.faces.SessionUsaPreBean;
import br.com.utilidades.faces.SimpleMessageBean;
import constantes.CONSTANTES;

/**
 * @version 1.0.0
 * @since Fevereiro,28 2013
 * @author Eduardo Francisco Barbosa
 */
@Component
@Scope("view")
public class TelaInicialBean extends SimpleMessageBean implements Serializable {

    private static final long serialVersionUID = -6627344407884784798L;

    private SessionUsaPreBean sessionUsaPreBean;

    private String login;
    private String senha;

    /**
     * Construtor
     */
    @Autowired
    public TelaInicialBean(SessionUsaPreBean sessionUsaPreBean) {

	this.sessionUsaPreBean = sessionUsaPreBean;

	reset();
    }

    /**
     * reset
     */
    public void reset() {

    }
    
    /**
     * primeiroAcesso
     */
    public void primeiroAcesso() {
    	
    	try {
    	    FacesContext.getCurrentInstance().getExternalContext()
    		    .redirect("/" + CONSTANTES.URLUSAPRE + "/cadastroDmClub.jsf");
    	} catch (Exception ex) {
    	    ex.printStackTrace();
    	}     
    }

    /**
     * sobreUsaPre
     */
    public void sobreUsaPre() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/sobreUsaCardPreLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/sobreUsaCardPre.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * todasAsVantagens
     */
    public void todasAsVantagens() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/todasVantagensLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/todasVantagens.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * duvidasFrequentes
     */
    public void duvidasFrequentes() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/duvidasFrequentesLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/duvidasFrequentes.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * contatos
     */
    public void contatos() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/contatoLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/contato.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * enviarEmail
     */
    public void enviarEmail() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/enviarMensagemLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/enviarMensagem.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * esqueceuSenha
     */
    public void esqueceuSenha() {
	try {
	    FacesContext.getCurrentInstance().getExternalContext()
		    .redirect("/" + CONSTANTES.URLUSAPRE + "/esqueceuSuaSenha.jsf");
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
    }

    /**
     * nowhere
     */
    public void nowhere() {

    }

    /**
     * goRecarregueOffLine
     */
    public void goRecarregueOffLine() {
	String msg = super.getMensagem("MN_favor_logar_primeiro");
	enviaMensagem(msg, msg);
    }

    /**
     * compreComDesconto
     */
    public void compreComDesconto() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/compreComDescontoLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/compreComDesconto.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * conhecaARede
     */
    public void conhecaARede() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/conhecaRedeLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/conhecaRede.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * lojista
     */
    public void lojista() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/lojistaLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/lojista.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    /**
     * areacliente
     */
    public void areacliente() {
	if (sessionUsaPreBean.getUsuario() == null) {
	    if (sessionUsaPreBean.getParceiro() == null) {

	    } else {
		try {
		    FacesContext.getCurrentInstance().getExternalContext()
			    .redirect("/" + CONSTANTES.URLUSAPRE + "/lojistaCadastrarDescontoLogado.jsf");
		} catch (Exception ex) {
		    ex.printStackTrace();
		}
	    }
	} else {
	    if (sessionUsaPreBean.getUsuario().getOrigemUsuario().equals("USA-PRÉ-INCOMPLETO")) {
		try {
		    FacesContext.getCurrentInstance().getExternalContext()
			    .redirect("/" + CONSTANTES.URLUSAPRE + "/homeFinalizaCadastro.jsf");
		} catch (Exception ex) {
		    ex.printStackTrace();
		}
	    } else {
		if (sessionUsaPreBean.getUsuario().getOrigemUsuario().equals("USA-PRÉ-ENVIADO")) {
		    try {
			FacesContext.getCurrentInstance().getExternalContext()
				.redirect("/" + CONSTANTES.URLUSAPRE + "/aguardeEnvioCadastro.jsf");
		    } catch (Exception ex) {
			ex.printStackTrace();
		    }
		} else {
		    try {
			FacesContext.getCurrentInstance().getExternalContext()
				.redirect("/" + CONSTANTES.URLUSAPRE + "/gerenciamentoMeuUsaCardHistorico.jsf");
		    } catch (Exception ex) {
			ex.printStackTrace();
		    }
		}
	    }
	}

    }

    /**
     * sair
     */
    public void sair() {
	sessionUsaPreBean.setLogado(Boolean.FALSE);
	sessionUsaPreBean.setUsuario(null);

	try {
	    FacesContext.getCurrentInstance().getExternalContext()
		    .redirect("/" + CONSTANTES.URLUSAPRE + "/telainicial.jsf");
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
	HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
		.getRequest();
	HttpSession session = request.getSession();
	session.invalidate();
    }

    /**
     * termosCondicoes
     */
    public void termosCondicoes() {
	try {
	    FacesContext.getCurrentInstance().getExternalContext()
		    .redirect("/" + CONSTANTES.URLUSAPRE + "/termosCondicoes.jsf");
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
    }

    /**
     * cadastreSe
     */
    public void cadastreSe() {
	try {
	    FacesContext.getCurrentInstance().getExternalContext()
		    .redirect("/" + CONSTANTES.URLUSAPRE + "/cadastro.jsf");
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
    }

    /**
     * inicio
     */
    public void inicio() {
	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/telainicialLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/telainicial.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    // SETS AND GETS
    public String getLogin() {
	return login;
    }

    public void setLogin(String login) {
	this.login = login;
    }

    public String getSenha() {
	return senha;
    }

    public void setSenha(String senha) {
	this.senha = senha;
    }
}
